Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Switch to graphviz 2.50 to avoid compilation problems #1166

Merged
merged 6 commits into from
Jun 10, 2022
Merged

Conversation

traversaro
Copy link
Member

graphviz 4 have a breaking change that will be reverted in a following release (see #1152), so it does not make sense to try to be compatible with graphviz 4 at this moment.

@traversaro
Copy link
Member Author

Error when using graphviz 3 package on Windows (there is no problem on Linux):

2022-06-10T12:15:33.8541936Z        Creating library D:/a/robotology-superbuild/robotology-superbuild/build/src/YARP/lib/Release/yarpviz.lib and object D:/a/robotology-superbuild/robotology-superbuild/build/src/YARP/lib/Release/yarpviz.exp
2022-06-10T12:15:33.9282720Z LINK : warning LNK4217: symbol '??0QGVScene@@QEAA@AEBVQString@@PEAVQObject@@_N@Z (public: __cdecl QGVScene::QGVScene(class QString const &,class QObject *,bool))' defined in 'YARP_priv_qgvcore.lib(QGVScene.obj)' is imported by 'MainWindow.obj' in function '"private: void __cdecl MainWindow::initScene(void)" (?initScene@MainWindow@@AEAAXXZ)' [D:\a\robotology-superbuild\robotology-superbuild\build\src\YARP\src\yarpviz\src\yarpviz.vcxproj] [D:\a\robotology-superbuild\robotology-superbuild\build\YARP.vcxproj]
2022-06-10T12:15:33.9339059Z LINK : warning LNK4217: symbol '??1QGVScene@@UEAA@XZ (public: virtual __cdecl QGVScene::~QGVScene(void))' defined in 'YARP_priv_qgvcore.lib(QGVScene.obj)' is imported by 'MainWindow.obj' in function '"public: virtual void * __cdecl QGVScene::`scalar deleting destructor'(unsigned int)" (??_GQGVScene@@UEAAPEAXI@Z)' [D:\a\robotology-superbuild\robotology-superbuild\build\src\YARP\src\yarpviz\src\yarpviz.vcxproj] [D:\a\robotology-superbuild\robotology-superbuild\build\YARP.vcxproj]
2022-06-10T12:15:33.9345118Z LINK : warning LNK4217: symbol '?setGraphAttribute@QGVScene@@QEAAXAEBVQString@@0@Z (public: void __cdecl QGVScene::setGraphAttribute(class QString const &,class QString const &))' defined in 'YARP_priv_qgvcore.lib(QGVScene.obj)' is imported by 'MainWindow.obj' in function '"public: void __cdecl MainWindow::drawGraph(class yarp::profiler::graph::Graph &)" (?drawGraph@MainWindow@@QEAAXAEAVGraph@graph@profiler@yarp@@@Z)' [D:\a\robotology-superbuild\robotology-superbuild\build\src\YARP\src\yarpviz\src\yarpviz.vcxproj] [D:\a\robotology-superbuild\robotology-superbuild\build\YARP.vcxproj]
2022-06-10T12:15:33.9351144Z LINK : warning LNK4217: symbol '?setNodeAttribute@QGVScene@@QEAAXAEBVQString@@0@Z (public: void __cdecl QGVScene::setNodeAttribute(class QString const &,class QString const &))' defined in 'YARP_priv_qgvcore.lib(QGVScene.obj)' is imported by 'MainWindow.obj' in function '"public: void __cdecl MainWindow::drawGraph(class yarp::profiler::graph::Graph &)" (?drawGraph@MainWindow@@QEAAXAEAVGraph@graph@profiler@yarp@@@Z)' [D:\a\robotology-superbuild\robotology-superbuild\build\src\YARP\src\yarpviz\src\yarpviz.vcxproj] [D:\a\robotology-superbuild\robotology-superbuild\build\YARP.vcxproj]
2022-06-10T12:15:33.9357733Z LINK : warning LNK4217: symbol '?setEdgeAttribute@QGVScene@@QEAAXAEBVQString@@0@Z (public: void __cdecl QGVScene::setEdgeAttribute(class QString const &,class QString const &))' defined in 'YARP_priv_qgvcore.lib(QGVScene.obj)' is imported by 'MainWindow.obj' in function '"public: void __cdecl MainWindow::drawGraph(class yarp::profiler::graph::Graph &)" (?drawGraph@MainWindow@@QEAAXAEAVGraph@graph@profiler@yarp@@@Z)' [D:\a\robotology-superbuild\robotology-superbuild\build\src\YARP\src\yarpviz\src\yarpviz.vcxproj] [D:\a\robotology-superbuild\robotology-superbuild\build\YARP.vcxproj]
2022-06-10T12:15:33.9364058Z LINK : warning LNK4217: symbol '?addNode@QGVScene@@QEAAPEAVQGVNode@@AEBVQString@@@Z (public: class QGVNode * __cdecl QGVScene::addNode(class QString const &))' defined in 'YARP_priv_qgvcore.lib(QGVScene.obj)' is imported by 'MainWindow.obj' in function '"public: void __cdecl MainWindow::drawGraph(class yarp::profiler::graph::Graph &)" (?drawGraph@MainWindow@@QEAAXAEAVGraph@graph@profiler@yarp@@@Z)' [D:\a\robotology-superbuild\robotology-superbuild\build\src\YARP\src\yarpviz\src\yarpviz.vcxproj] [D:\a\robotology-superbuild\robotology-superbuild\build\YARP.vcxproj]
2022-06-10T12:15:33.9370568Z LINK : warning LNK4217: symbol '?addEdge@QGVScene@@QEAAPEAVQGVEdge@@PEAVQGVNode@@0AEBVQString@@@Z (public: class QGVEdge * __cdecl QGVScene::addEdge(class QGVNode *,class QGVNode *,class QString const &))' defined in 'YARP_priv_qgvcore.lib(QGVScene.obj)' is imported by 'MainWindow.obj' in function '"public: void __cdecl MainWindow::drawGraph(class yarp::profiler::graph::Graph &)" (?drawGraph@MainWindow@@QEAAXAEAVGraph@graph@profiler@yarp@@@Z)' [D:\a\robotology-superbuild\robotology-superbuild\build\src\YARP\src\yarpviz\src\yarpviz.vcxproj] [D:\a\robotology-superbuild\robotology-superbuild\build\YARP.vcxproj]
2022-06-10T12:15:33.9373022Z LINK : warning LNK4217: symbol '?addSubGraph@QGVScene@@QEAAPEAVQGVSubGraph@@AEBVQString@@_N@Z (public: class QGVSubGraph * __cdecl QGVScene::addSubGraph(class QString const &,bool))' defined in 'YARP_priv_qgvcore.lib(QGVScene.obj)' is imported by 'MainWindow.obj' in function '"public: void __cdecl MainWindow::drawGraph(class yarp::profiler::graph::Graph &)" (?drawGraph@MainWindow@@QEAAXAEAVGraph@graph@profiler@yarp@@@Z)' [D:\a\robotology-superbuild\robotology-superbuild\build\src\YARP\src\yarpviz\src\yarpviz.vcxproj] [D:\a\robotology-superbuild\robotology-superbuild\build\YARP.vcxproj]
2022-06-10T12:15:33.9375567Z LINK : warning LNK4217: symbol '?applyLayout@QGVScene@@QEAAXXZ (public: void __cdecl QGVScene::applyLayout(void))' defined in 'YARP_priv_qgvcore.lib(QGVScene.obj)' is imported by 'MainWindow.obj' in function '"public: void __cdecl MainWindow::drawGraph(class yarp::profiler::graph::Graph &)" (?drawGraph@MainWindow@@QEAAXAEAVGraph@graph@profiler@yarp@@@Z)' [D:\a\robotology-superbuild\robotology-superbuild\build\src\YARP\src\yarpviz\src\yarpviz.vcxproj] [D:\a\robotology-superbuild\robotology-superbuild\build\YARP.vcxproj]
2022-06-10T12:15:33.9385609Z LINK : warning LNK4217: symbol '?clear@QGVScene@@QEAAXXZ (public: void __cdecl QGVScene::clear(void))' defined in 'YARP_priv_qgvcore.lib(QGVScene.obj)' is imported by 'MainWindow.obj' in function '"private: void __cdecl MainWindow::initScene(void)" (?initScene@MainWindow@@AEAAXXZ)' [D:\a\robotology-superbuild\robotology-superbuild\build\src\YARP\src\yarpviz\src\yarpviz.vcxproj] [D:\a\robotology-superbuild\robotology-superbuild\build\YARP.vcxproj]
2022-06-10T12:15:33.9387598Z LINK : warning LNK4217: symbol '?enableBgGrid@QGVScene@@QEAAX_N@Z (public: void __cdecl QGVScene::enableBgGrid(bool))' defined in 'YARP_priv_qgvcore.lib(QGVScene.obj)' is imported by 'MainWindow.obj' in function '"private: void __cdecl MainWindow::onBackgroundGrid(void)" (?onBackgroundGrid@MainWindow@@AEAAXXZ)' [D:\a\robotology-superbuild\robotology-superbuild\build\src\YARP\src\yarpviz\src\yarpviz.vcxproj] [D:\a\robotology-superbuild\robotology-superbuild\build\YARP.vcxproj]
2022-06-10T12:15:33.9389968Z LINK : warning LNK4217: symbol '?label@QGVNode@@QEBA?AVQString@@XZ (public: class QString __cdecl QGVNode::label(void)const )' defined in 'YARP_priv_qgvcore.lib(QGVNode.obj)' is imported by 'MainWindow.obj' in function '"private: void __cdecl MainWindow::nodeDoubleClick(class QGVNode *)" (?nodeDoubleClick@MainWindow@@AEAAXPEAVQGVNode@@@Z)' [D:\a\robotology-superbuild\robotology-superbuild\build\src\YARP\src\yarpviz\src\yarpviz.vcxproj] [D:\a\robotology-superbuild\robotology-superbuild\build\YARP.vcxproj]
2022-06-10T12:15:33.9392074Z LINK : warning LNK4217: symbol '?setAttribute@QGVNode@@QEAAXAEBVQString@@0@Z (public: void __cdecl QGVNode::setAttribute(class QString const &,class QString const &))' defined in 'YARP_priv_qgvcore.lib(QGVNode.obj)' is imported by 'MainWindow.obj' in function '"public: void __cdecl MainWindow::drawGraph(class yarp::profiler::graph::Graph &)" (?drawGraph@MainWindow@@QEAAXAEAVGraph@graph@profiler@yarp@@@Z)' [D:\a\robotology-superbuild\robotology-superbuild\build\src\YARP\src\yarpviz\src\yarpviz.vcxproj] [D:\a\robotology-superbuild\robotology-superbuild\build\YARP.vcxproj]
2022-06-10T12:15:33.9394793Z LINK : warning LNK4217: symbol '?setVertex@QGVNode@@QEAAXPEAX@Z (public: void __cdecl QGVNode::setVertex(void *))' defined in 'YARP_priv_qgvcore.lib(QGVNode.obj)' is imported by 'MainWindow.obj' in function '"public: void __cdecl MainWindow::drawGraph(class yarp::profiler::graph::Graph &)" (?drawGraph@MainWindow@@QEAAXAEAVGraph@graph@profiler@yarp@@@Z)' [D:\a\robotology-superbuild\robotology-superbuild\build\src\YARP\src\yarpviz\src\yarpviz.vcxproj] [D:\a\robotology-superbuild\robotology-superbuild\build\YARP.vcxproj]
2022-06-10T12:15:33.9396927Z LINK : warning LNK4217: symbol '?getVertex@QGVNode@@QEAAPEAXXZ (public: void * __cdecl QGVNode::getVertex(void))' defined in 'YARP_priv_qgvcore.lib(QGVNode.obj)' is imported by 'MainWindow.obj' in function '"private: void __cdecl MainWindow::nodeContextMenu(class QGVNode *)" (?nodeContextMenu@MainWindow@@AEAAXPEAVQGVNode@@@Z)' [D:\a\robotology-superbuild\robotology-superbuild\build\src\YARP\src\yarpviz\src\yarpviz.vcxproj] [D:\a\robotology-superbuild\robotology-superbuild\build\YARP.vcxproj]
2022-06-10T12:15:33.9399584Z LINK : warning LNK4217: symbol '?label@QGVEdge@@QEBA?AVQString@@XZ (public: class QString __cdecl QGVEdge::label(void)const )' defined in 'YARP_priv_qgvcore.lib(QGVEdge.obj)' is imported by 'MainWindow.obj' in function '"private: void __cdecl MainWindow::edgeContextMenu(class QGVEdge *)" (?edgeContextMenu@MainWindow@@AEAAXPEAVQGVEdge@@@Z)' [D:\a\robotology-superbuild\robotology-superbuild\build\src\YARP\src\yarpviz\src\yarpviz.vcxproj] [D:\a\robotology-superbuild\robotology-superbuild\build\YARP.vcxproj]
2022-06-10T12:15:33.9402003Z LINK : warning LNK4217: symbol '?setAttribute@QGVEdge@@QEAAXAEBVQString@@0@Z (public: void __cdecl QGVEdge::setAttribute(class QString const &,class QString const &))' defined in 'YARP_priv_qgvcore.lib(QGVEdge.obj)' is imported by 'MainWindow.obj' in function '"public: void __cdecl MainWindow::drawGraph(class yarp::profiler::graph::Graph &)" (?drawGraph@MainWindow@@QEAAXAEAVGraph@graph@profiler@yarp@@@Z)' [D:\a\robotology-superbuild\robotology-superbuild\build\src\YARP\src\yarpviz\src\yarpviz.vcxproj] [D:\a\robotology-superbuild\robotology-superbuild\build\YARP.vcxproj]
2022-06-10T12:15:33.9408320Z LINK : warning LNK4217: symbol '?setEdge@QGVEdge@@QEAAXPEBX@Z (public: void __cdecl QGVEdge::setEdge(void const *))' defined in 'YARP_priv_qgvcore.lib(QGVEdge.obj)' is imported by 'MainWindow.obj' in function '"public: void __cdecl MainWindow::drawGraph(class yarp::profiler::graph::Graph &)" (?drawGraph@MainWindow@@QEAAXAEAVGraph@graph@profiler@yarp@@@Z)' [D:\a\robotology-superbuild\robotology-superbuild\build\src\YARP\src\yarpviz\src\yarpviz.vcxproj] [D:\a\robotology-superbuild\robotology-superbuild\build\YARP.vcxproj]
2022-06-10T12:15:33.9414571Z LINK : warning LNK4217: symbol '?getEdge@QGVEdge@@QEAAPEBXXZ (public: void const * __cdecl QGVEdge::getEdge(void))' defined in 'YARP_priv_qgvcore.lib(QGVEdge.obj)' is imported by 'MainWindow.obj' in function '"private: void __cdecl MainWindow::edgeContextMenu(class QGVEdge *)" (?edgeContextMenu@MainWindow@@AEAAXPEAVQGVEdge@@@Z)' [D:\a\robotology-superbuild\robotology-superbuild\build\src\YARP\src\yarpviz\src\yarpviz.vcxproj] [D:\a\robotology-superbuild\robotology-superbuild\build\YARP.vcxproj]
2022-06-10T12:15:33.9421062Z LINK : warning LNK4217: symbol '?addNode@QGVSubGraph@@QEAAPEAVQGVNode@@AEBVQString@@@Z (public: class QGVNode * __cdecl QGVSubGraph::addNode(class QString const &))' defined in 'YARP_priv_qgvcore.lib(QGVSubGraph.obj)' is imported by 'MainWindow.obj' in function '"public: void __cdecl MainWindow::drawGraph(class yarp::profiler::graph::Graph &)" (?drawGraph@MainWindow@@QEAAXAEAVGraph@graph@profiler@yarp@@@Z)' [D:\a\robotology-superbuild\robotology-superbuild\build\src\YARP\src\yarpviz\src\yarpviz.vcxproj] [D:\a\robotology-superbuild\robotology-superbuild\build\YARP.vcxproj]
2022-06-10T12:15:33.9427573Z LINK : warning LNK4217: symbol '?addSubGraph@QGVSubGraph@@QEAAPEAV1@AEBVQString@@_N@Z (public: class QGVSubGraph * __cdecl QGVSubGraph::addSubGraph(class QString const &,bool))' defined in 'YARP_priv_qgvcore.lib(QGVSubGraph.obj)' is imported by 'MainWindow.obj' in function '"public: void __cdecl MainWindow::drawGraph(class yarp::profiler::graph::Graph &)" (?drawGraph@MainWindow@@QEAAXAEAVGraph@graph@profiler@yarp@@@Z)' [D:\a\robotology-superbuild\robotology-superbuild\build\src\YARP\src\yarpviz\src\yarpviz.vcxproj] [D:\a\robotology-superbuild\robotology-superbuild\build\YARP.vcxproj]
2022-06-10T12:15:33.9434031Z LINK : warning LNK4217: symbol '?setAttribute@QGVSubGraph@@QEAAXAEBVQString@@0@Z (public: void __cdecl QGVSubGraph::setAttribute(class QString const &,class QString const &))' defined in 'YARP_priv_qgvcore.lib(QGVSubGraph.obj)' is imported by 'MainWindow.obj' in function '"public: void __cdecl MainWindow::drawGraph(class yarp::profiler::graph::Graph &)" (?drawGraph@MainWindow@@QEAAXAEAVGraph@graph@profiler@yarp@@@Z)' [D:\a\robotology-superbuild\robotology-superbuild\build\src\YARP\src\yarpviz\src\yarpviz.vcxproj] [D:\a\robotology-superbuild\robotology-superbuild\build\YARP.vcxproj]
2022-06-10T12:15:33.9440436Z LINK : warning LNK4217: symbol '?getAttribute@QGVSubGraph@@QEBA?AVQString@@AEBV2@@Z (public: class QString __cdecl QGVSubGraph::getAttribute(class QString const &)const )' defined in 'YARP_priv_qgvcore.lib(QGVSubGraph.obj)' is imported by 'MainWindow.obj' in function '"public: void __cdecl MainWindow::drawGraph(class yarp::profiler::graph::Graph &)" (?drawGraph@MainWindow@@QEAAXAEAVGraph@graph@profiler@yarp@@@Z)' [D:\a\robotology-superbuild\robotology-superbuild\build\src\YARP\src\yarpviz\src\yarpviz.vcxproj] [D:\a\robotology-superbuild\robotology-superbuild\build\YARP.vcxproj]
2022-06-10T12:15:33.9443207Z LINK : warning LNK4217: symbol '?setIcon@QGVSubGraph@@QEAAXAEBVQImage@@@Z (public: void __cdecl QGVSubGraph::setIcon(class QImage const &))' defined in 'YARP_priv_qgvcore.lib(QGVSubGraph.obj)' is imported by 'MainWindow.obj' in function '"public: void __cdecl MainWindow::drawGraph(class yarp::profiler::graph::Graph &)" (?drawGraph@MainWindow@@QEAAXAEAVGraph@graph@profiler@yarp@@@Z)' [D:\a\robotology-superbuild\robotology-superbuild\build\src\YARP\src\yarpviz\src\yarpviz.vcxproj] [D:\a\robotology-superbuild\robotology-superbuild\build\YARP.vcxproj]
2022-06-10T12:15:33.9445723Z LINK : warning LNK4217: symbol '?setVertex@QGVSubGraph@@QEAAXPEAX@Z (public: void __cdecl QGVSubGraph::setVertex(void *))' defined in 'YARP_priv_qgvcore.lib(QGVSubGraph.obj)' is imported by 'MainWindow.obj' in function '"public: void __cdecl MainWindow::drawGraph(class yarp::profiler::graph::Graph &)" (?drawGraph@MainWindow@@QEAAXAEAVGraph@graph@profiler@yarp@@@Z)' [D:\a\robotology-superbuild\robotology-superbuild\build\src\YARP\src\yarpviz\src\yarpviz.vcxproj] [D:\a\robotology-superbuild\robotology-superbuild\build\YARP.vcxproj]
2022-06-10T12:15:33.9448150Z LINK : warning LNK4217: symbol '?getVertex@QGVSubGraph@@QEAAPEAXXZ (public: void * __cdecl QGVSubGraph::getVertex(void))' defined in 'YARP_priv_qgvcore.lib(QGVSubGraph.obj)' is imported by 'MainWindow.obj' in function '"private: void __cdecl MainWindow::onSubGraphContextMenuProcess(class QGVSubGraph *)" (?onSubGraphContextMenuProcess@MainWindow@@AEAAXPEAVQGVSubGraph@@@Z)' [D:\a\robotology-superbuild\robotology-superbuild\build\src\YARP\src\yarpviz\src\yarpviz.vcxproj] [D:\a\robotology-superbuild\robotology-superbuild\build\YARP.vcxproj]
2022-06-10T12:15:33.9451203Z YARP_priv_qgvcore.lib(QGVScene.obj) : error LNK2019: unresolved external symbol AgMemDisc referenced in function "public: void __cdecl QGVScene::loadLayout(class QString const &)" (?loadLayout@QGVScene@@QEAAXAEBVQString@@@Z) [D:\a\robotology-superbuild\robotology-superbuild\build\src\YARP\src\yarpviz\src\yarpviz.vcxproj] [D:\a\robotology-superbuild\robotology-superbuild\build\YARP.vcxproj]
2022-06-10T12:15:33.9453005Z YARP_priv_qgvcore.lib(QGVScene.obj) : error LNK2019: unresolved external symbol AgIdDisc referenced in function "public: void __cdecl QGVScene::loadLayout(class QString const &)" (?loadLayout@QGVScene@@QEAAXAEBVQString@@@Z) [D:\a\robotology-superbuild\robotology-superbuild\build\src\YARP\src\yarpviz\src\yarpviz.vcxproj] [D:\a\robotology-superbuild\robotology-superbuild\build\YARP.vcxproj]
2022-06-10T12:15:33.9454674Z YARP_priv_qgvcore.lib(QGVScene.obj) : error LNK2019: unresolved external symbol AgIoDisc referenced in function "public: void __cdecl QGVScene::loadLayout(class QString const &)" (?loadLayout@QGVScene@@QEAAXAEBVQString@@@Z) [D:\a\robotology-superbuild\robotology-superbuild\build\src\YARP\src\yarpviz\src\yarpviz.vcxproj] [D:\a\robotology-superbuild\robotology-superbuild\build\YARP.vcxproj]
2022-06-10T12:15:33.9456408Z YARP_priv_qgvcore.lib(QGVScene.obj) : error LNK2019: unresolved external symbol Agdirected referenced in function "public: __cdecl QGVScene::QGVScene(class QString const &,class QObject *,bool)" (??0QGVScene@@QEAA@AEBVQString@@PEAVQObject@@_N@Z) [D:\a\robotology-superbuild\robotology-superbuild\build\src\YARP\src\yarpviz\src\yarpviz.vcxproj] [D:\a\robotology-superbuild\robotology-superbuild\build\YARP.vcxproj]

@traversaro
Copy link
Member Author

The first line of graphviz 3 changelog https://gitlab.com/graphviz/graphviz/-/blob/main/CHANGELOG.md#changed-1 seems to relevant:

Breaking: Using Graphviz as a library on Windows now requires the GVDLL
symbol to be set to ensure correct linking.

@traversaro
Copy link
Member Author

Ok, the problem with graphviz 3 has been analyized and will be fixed completly once:

For the time being, we can switch to require graphviz 2.50

@traversaro traversaro changed the title Switch to graphviz 3 to avoid compilation problem Switch to graphviz 2.50 to avoid compilation problem Jun 10, 2022
@traversaro traversaro changed the title Switch to graphviz 2.50 to avoid compilation problem Switch to graphviz 2.50 to avoid compilation problems Jun 10, 2022
@traversaro
Copy link
Member Author

traversaro commented Jun 10, 2022

On Linux graphviz=2.50 conflicts with other dependencies, in particular:

mamba install gazebo libopencv graphviz=2.50 qt-main

already fails. Probably we could stick to graphviz 2.50 only on Windows.

@traversaro
Copy link
Member Author

Merging without review as is it a PR that fix the CI (and so that I can enjoy a weekend of green lights :D ).

@traversaro traversaro merged commit 45c0fe9 into master Jun 10, 2022
@traversaro traversaro deleted the fixgraphviz branch June 10, 2022 22:28
@traversaro
Copy link
Member Author

Backported to releases/2022.05 in 6eb9990 .

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
None yet
Projects
None yet
Development

Successfully merging this pull request may close these issues.

1 participant